今天開始會帶大家來操作一下 NiFi 如何來與 GCP 相關的服務做整合與設定,首先會先介紹 Google Cloud Storage 的應用。
首先一開始,我們一樣要事先擁有 GCP 的 Credentials,這邊給各位讀者參考連結,照著操作到 GCP 設定,原則上就會取得到 GCP Credential JSON File 囉。
拿到 GCP Credentials File 之後,我們一樣 volume 到 NiFi 的 Container 內某個路徑,接著到 UI 的 Controller Service 選擇 GCPCredentialsControllerService
來做設定,如下圖:
我們繼續點進去做更細項的設定,如下圖:
只要在 Service Account JSON File
指定好你的 GCP Credential JSON File 路徑即可。
到這邊的操作與 AWS 的 Controller Service 都十分類似,所以相信各位讀者們也容易就手。
設定好 GCPCredentialsControllerService
之後,接下來我們就可以拉 GCS 相關的 Processors 來做操作了,在 NiFi 當中關於 GCS 的 Processors 包含了如下幾種:
列出特定 GCS 某一個 Bucker 且特定路徑下的所有 Objects。
這邊,我們可以看到如下圖的設定:
取得 GCS 的 Objects,相關設定如下圖:
假如有一個 file 在 GCS 的路徑是 gs://my-bucket/example/data/titanic.csv
my-bucket
。example/data/titanic.csv
。這邊會發現 Bucket
和 Name
是使用 Variables 的方式,代表要進這個 Processor 之前,FlowFiles 必須帶有 gcs.bucket
和 filename
這兩個 Attributes,這樣才能做讀取,當然讀者們也可以直接設定 Value 到對應的參數。
上傳 Objects 到指定的 GCS,相關設定如下圖:
假如要上傳一個 file 且在 GCS 的路徑是 gs://my-bucket/example/data/titanic2.csv
my-bucket
。example/data/titanic2.csv
。刪除 GCS 的某一個 Objects,相關設定如下圖:
假如要刪除一個 file 且在 GCS 的路徑是 gs://my-bucket/example/data/titanic.csv
my-bucket
。example/data/titanic.csv
。我們可以發現,連 Processors 的設定,都與 AWS S3 非常的類似,所以這邊只要指定好對應的設定,也能像 S3 的 Processor 輕鬆做使用。此外,每一個 Processor 之間的設定也很類似,所以只要設定好 Controller Service 以及對應的 Variables 就可以很輕鬆地對 GCS 的資料或檔案來做操作了。
今天的文章與先前的 AWS S3 一樣十分簡單,經過我們一系列的 Processor 的設定與操作,我想各位有相對一開始較容易上手了,其實在 NiFi 的設定上就是這樣,很多 Processor 都是大同小異的,所以只要掌握好重點與精髓,對於任何一個新的 Datasource ,你也可以很輕鬆地去對他們做資料的操作。
最後,提醒一下,明天就會來介紹如何與 GCP 的 BigQuery 來做設定與應用,該服務也是目前在企業上最常用的資料服務,所以如果知道如何操作,想必也能獲益良多。